var express = require('express');
var bodyParser = require('body-parser');
var md5 = require('MD5');
var app = express();


app.all('/*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'GET,POST,PUT,HEAD,DELETE,OPTIONS');
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    next();
});

// Config
app.use(express.Router());
app.use(bodyParser());

app.get('/mensagens/mensagem/:idMensagem/:hash', function(req, res) {
    res.type('application/json');

    var expirou = false;
    var mensagem = new Object();
    var idMensagem = req.params.idMensagem;
    var hash = req.param.hash;

    //verificar tempo de sessão
    if (!expirou) {
        //buscar Mensagem no banco
        var msm = new Object();
        if (idMensagem == 1) {
            msm.id = 1;
            msm.titulo = 'teste Aviso (titulo)';
            msm.mensagem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam at turpis placerat, viverra augue eu, molestie odio. Quisque sed mi blandit, accumsan neque quis, viverra metus. Vivamus tincidunt lectus diam, porttitor sagittis odio consectetur porta. ';
            msm.remetente = 'Diretor';
        }else if (idMensagem == 2) {
            msm.id = 1;
            msm.titulo = 'Mensagem Teste';
            msm.mensagem = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam at turpis placerat, viverra augue eu, molestie odio. Quisque sed mi blandit, accumsan neque quis, viverra metus. Vivamus tincidunt lectus diam, porttitor sagittis odio consectetur porta. ';
            msm.remetente = 'Diretor';
        }

        mensagem.expirou = false;
        mensagem.value = msm;

        return res.json(mensagem);
    } else {
        mensagem.expirou = true;
        return res.json(mensagem);
    }
    
});

app.get('/mensagens/:hash', function(req, res) {
    res.type('application/json');

    //verificar tempo de sessão
    var expirou = false;
    var mensagens = new Object();

    if (!expirou) {
        //buscar materiais no banco
        var mensagem = new Object();
        mensagem.id = 1;
        mensagem.tipo = 'Aviso';
        mensagem.data = '25/05';

        var mensagem2 = new Object();
        mensagem2.id = 2;
        mensagem2.tipo = 'Mensagem';
        mensagem2.data = '06/06';

        var mensagem3 = new Object();
        mensagem3.id = 3;
        mensagem3.tipo = 'Passeio';
        mensagem3.data = '23/06';


        mensagens.expirou = false;
        mensagens.values = [mensagem, mensagem2, mensagem3];

        return res.json(mensagens);
    } else {
        mensagens.expirou = true;
        return res.json(mensagens);

    }
});

app.put('/frequencia/motivo/atualizar/:idFrequencia', function(req, res) {
    res.type('application/json');

    var idFrequencia = req.params.idFrequencia;
    var motivo = req.body.motivo;
    var hash = req.body.hash;

    console.log("idFrequencia: " + idFrequencia);
    console.log("motivo: " + motivo);
    console.log("hash: " + hash);

    //verificar hash e sessão
    if (idFrequencia == 1) {
        var login = new Object();
        login.expirou = false;
        login.value = true;
        return res.json(login);
    } else
        return res.json(null);

});

app.post('/frequencia/motivo/salvar', function(req, res) {
    res.type('application/json');

    var idFrequencia = req.body.idFrequencia;
    var motivo = req.body.motivo;
    var hash = req.body.hash;

    console.log("idFrequencia: " + idFrequencia);
    console.log("motivo: " + motivo);
    console.log("hash: " + hash);

    //verificar hash e sessão
    if (idFrequencia == 2) {
        var login = new Object();
        login.expirou = false;
        login.value = true;
        return res.json(login);
    } else
        return res.json(null);


});

app.get('/frequencia/motivo/:idFrequencia/:hash', function(req, res) {
    res.type('application/json');

    var expirou = false;
    var motivo = new Object();
    var idFrequencia = req.params.idFrequencia;
    var hash = req.param.hash;

    //verificar tempo de sessão
    if (!expirou) {
        //buscar motivo no banco
        var motivo1 = new Object();

        if (idFrequencia == 1) {
            motivo1.id = 1;
            motivo1.motivo = 'Internação Hospitalar';
        }

        motivo.expirou = false;
        motivo.values = [motivo1];

        return res.json(motivo);
    } else {
        motivo.expirou = true;
        return res.json(motivo);
    }
});

app.get('/frequencia/:hash', function(req, res) {
    res.type('application/json');

    var expirou = false;
    var frequencias = new Object();
    var hash = req.param.hash;

    //verificar tempo de sessão
    if (!expirou) {
        //buscar frequencias no banco
        var frequencia1 = new Object();
        var frequencia2 = new Object();

        frequencia1.id = 1;
        frequencia1.dia = 10;
        frequencia1.mes = 'MAIO';

        frequencia2.id = 2;
        frequencia2.dia = 05;
        frequencia2.mes = 'JULHO';

        frequencias.expirou = false;
        frequencias.values = [frequencia1, frequencia2];

        return res.json(frequencias);
    } else {
        frequencias.expirou = true;
        return res.json(frequencias);
    }
});

app.get('/boletim/nota/:idDisciplina/:hash', function(req, res) {
    res.type('application/json');

    var expirou = false;
    var notas = new Object();
    var idDisciplina = req.params.idDisciplina;
    var hash = req.param.hash;

    //verificar tempo de sessão
    if (!expirou) {
        //buscar notas no banco
        var nota1 = new Object();
        var nota2 = new Object();


        console.log('idDisciplina: ' + idDisciplina);
        if (idDisciplina == 1) {
            nota1.id = 1;
            nota1.ordem = 1;
            nota1.nome = 'Prova';
            nota1.nota = 10;

            notas.expirou = false;
            notas.values = [nota1];
        } else if (idDisciplina == 2) {
            nota2.id = 2;
            nota2.ordem = 1;
            nota2.nome = 'Prova';
            nota2.nota = 7;

            notas.expirou = false;
            notas.values = [nota2];
        }

        return res.json(notas);
    } else {
        notas.expirou = true;
        return res.json(notas);

    }
});

app.get('/boletim/:hash', function(req, res) {
    res.type('application/json');

    //verificar tempo de sessão
    var expirou = false;
    var disciplinas = new Object();

    if (!expirou) {
        //buscar materiais no banco
        var disciplina = new Object();
        disciplina.id = 1;
        disciplina.nome = 'matematica';

        var disciplina2 = new Object();
        disciplina2.id = 2;
        disciplina2.nome = 'fisica';

        disciplinas.expirou = false;
        disciplinas.values = [disciplina, disciplina2];

        return res.json(disciplinas);
    } else {
        disciplinas.expirou = true;
        return res.json(disciplinas);

    }
});

app.post('/login/logar', function(req, res) {
    res.type('application/json');

    var matricula = req.body.matricula;
    var senha = req.body.senha;
    console.log("Matricula: " + matricula);
    console.log("Senha: " + senha);

    //verificar login no banco
    if (matricula == 123 & senha == 321) {
        //gerar, salvar e enviar hash
        var hash = md5(matricula + senha + Date.now());
        console.log('hash: ' + hash);

        var login = new Object();
        login.acao = 'update';
        login.tabela = 'login';
        login.value = hash;
        return res.json(login);
    } else
        return res.json(null);


});

app.listen(process.env.PORT || 80);
